﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using publico;
using objetos;
using System.Data;
using System.Text;

namespace softsales.pagina.cfop
{
    
    public partial class cfop_modal : System.Web.UI.Page
    {

        BLL_TB_CFOP b_tb_cfop = new BLL_TB_CFOP();
        OBJ_TB_CFOP o_tb_cfop = new OBJ_TB_CFOP();

        public string tipo { get; set; }

        DataSet ds = new DataSet();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {

                if (!IsPostBack)
                {

                

                    PUB_PAGINACAO.Inicializa();

                   
                    //// CAMPOS PARA FILTRO
                    DDL_FILTRO.Items.Add(new ListItem("FILTRO", "FILTRO"));
                    DDL_FILTRO.Items.Add(new ListItem("ID", "ID"));
                    DDL_FILTRO.Items.Add(new ListItem("DESCRICAO", "DESCRICAO"));                    
            
                    LBL_TITULO_PAGINA.Text = "Lista de CFOPs";
                    
                    DDL_ENTRADA_SAIDA.Items.Clear();
                    DDL_ENTRADA_SAIDA.Items.Add(new ListItem("Entrada", "E"));
                    DDL_ENTRADA_SAIDA.Items.Add(new ListItem("Saída", "S"));

                  

                    if (Request["tipo"] != null)
                    {
                        tipo = Request["tipo"].ToString();


                        if (tipo == "S")
                        {
                            DDL_ENTRADA_SAIDA.SelectedValue = "S";
                        }
                        else
                        {
                            DDL_ENTRADA_SAIDA.SelectedValue = "E";
                        }
                    }

                    CarregaGrid();

                }


            }



        }

        
        public void CarregaGrid()
        {
            try
            {


                PUB_PAGINACAO.PageSize = 5;

                StringBuilder sb = new StringBuilder();


                List<string> lista = new List<string>();

                if (DDL_FILTRO.SelectedValue != string.Empty && TXT_PESQUISAR.Text != string.Empty)
                {
                    switch (DDL_FILTRO.SelectedValue)
                    {
                        case "ID":
                            lista.Add(string.Format(" id = '{0}'", TXT_PESQUISAR.Text));
                            break;
                        case "DESCRICAO":
                            lista.Add(string.Format(" descricao LIKE '%{0}%'", TXT_PESQUISAR.Text));
                            break;
                      

                    }


                }


                if (tipo != null)
                {
                    lista.Add(string.Format(" tipo  =  '{0}'", tipo));
                }
                else
                {
                    if (DDL_ENTRADA_SAIDA.SelectedValue != string.Empty)
                    {

                        lista.Add(string.Format(" tipo  =  '{0}'", DDL_ENTRADA_SAIDA.SelectedValue));

                    }
                }
                
                   


                sb.Append(string.Join(" and ", lista.ToArray()));



                ds = b_tb_cfop.Selecionar(sb.ToString(), PUB_PAGINACAO.Sort, PUB_PAGINACAO.PageIndex, PUB_PAGINACAO.PageSize);

                if (ds.Tables[0].Rows.Count > 0)
                {
                    GRV_TB_CFOP.DataSource = ds;
                    GRV_TB_CFOP.DataBind();
                    PUB_PAGINACAO.Paginacao(true);
                }
                else
                {
                    GRV_TB_CFOP.EmptyDataText = "Nenhum registro foi encontrado";
                    GRV_TB_CFOP.DataBind();
                }
            }
            catch (Exception)
            {
               
            }
            finally
            {
                ds.Dispose();
            }



        }

        protected void GRV_TB_CFOP_Sorting(object sender, GridViewSortEventArgs e)
        {

            PUB_PAGINACAO.Sort = e.SortExpression;
            if (PUB_PAGINACAO.SortDirection == SortDirection.Ascending)
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Descending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + " " + PUB_PAGINACAO.DESCENDENTE;
            }
            else
            {
                PUB_PAGINACAO.SortDirection = SortDirection.Ascending;
                PUB_PAGINACAO.Sort = PUB_PAGINACAO.Sort + "  " + PUB_PAGINACAO.ASCENDENTE;
            }

            CarregaGrid();


        }


        protected void GRV_TB_CFOP_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GRV_TB_CFOP.PageIndex = e.NewPageIndex;
            PUB_PAGINACAO.PageIndex = e.NewPageIndex;
            CarregaGrid();
        }

        protected void IMG_BTN_PESQUISAR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }


        protected void IMG_BTN_PRIMEIRO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }

        protected void IMG_BTN_ANTERIOR_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex - 1;
            CarregaGrid();
        }

        protected void IMG_BTN_PROXIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.PageIndex + 1;
            CarregaGrid();
        }

        protected void IMG_BTN_ULTIMO_Click(object sender, ImageClickEventArgs e)
        {
            PUB_PAGINACAO.PageIndex = PUB_PAGINACAO.TotalDePaginas - 1;
            CarregaGrid();
        }

        protected void CHK_ID_CheckedChanged(object sender, EventArgs e)
        {
            string id = PUB_FUNCOES.RetornaValorDataKeyGridView(GRV_TB_CFOP, "id");

            Session["id_cfop"] = id;
        }

        protected void DDL_ENTRADA_SAIDA_SelectedIndexChanged(object sender, EventArgs e)
        {
            PUB_PAGINACAO.PageIndex = 0;
            CarregaGrid();
        }



        

    }
}